1. Field of the Invention
This invention relates generally to automatic optical inspection systems and methods, and, more particularly, to techniques for reducing the time required to develop reliable inspection programs, particularly those deployed across large numbers of inspection machines.
2. Description of Related Art
Manufacturers of electronic equipment use automatic optical inspection (AOI) to verify the correct construction of circuit board assemblies. FIG. 1 shows a typical AOI system 100 in conceptual form. A circuit board 110 or other assembly is placed securely on a surface, such as an inspection table 112. A camera 114 is suspended above the inspection table 112 from a gantry 116, which moves the camera 114 in increments along X and Y-axes. A processor 118 controls the movement of the gantry via a control line 120 and acquires images from the camera via a data line 122. The AOI system 100 inspects the locations of features on the circuit board 110 with respect to an origin 126, which is generally located at a comer of the circuit board. Circuit boards may also include visual guideposts, called “fiducials,” which the inspection system can use to determine position. An example of an AOI system is the Teradyne Optima 7300 post-reflow inspection machine.
During operation of the AOI system 100, the gantry 116 moves the camera 114 over the circuit board 110. The camera 114 scans the circuit board and acquires images. The processor 118 performs calculations on the acquired images.
Often, more than one camera is used for viewing the circuit board from different vantage points. Sometimes the camera(s) move and the circuit board remains stationary. Other times, the circuit board moves and the camera(s) remain stationary.
The techniques of image analysis used in AOI machines are generally based on small regions of interest in a field of view called “inspection windows” or simply “windows.” Each window is used to inspect a particular feature of a component on a circuit board. Some windows are used for detecting the bodies of components or their edges. Others are used for evaluating the quantity or quality of solder in the solder joints that connect the components' terminals to the circuit board. Each window is generally defined in terms of its location, shape, size, the type of algorithm used, the camera and kind of lighting used, and other details.
FIG. 2 shows a typical field of view (“FOV”). The FOV 200 includes an array of pixels 210 and various inspection windows 212. A typical FOV is about 2 cm on each side. A typical inspection window is a rectangle or ellipse anywhere from about 1/50 to ⅕ of a millimeter or more in either of its dimensions. For ease of illustration, the relative sizes of the FOV, pixels, and windows shown in FIG. 2 have been greatly distorted.
AOI systems generally evaluate windows by performing simple algorithms. These may include, for example, algorithms for computing average brightness (i.e., gray level) or variance in gray level. AOI systems may also perform more complex algorithms, such as those for identifying features within a window.
AOI machines are usually installed in production lines. The installation or debugging of inspection programs is therefore generally done under tight time constraints. If a machine is tied up debugging an inspection program, an entire assembly line may be stopped, causing large costs to be incurred. The principal consumer of time in debugging an inspection program is evaluating the windows for their ability to discriminate good boards from bad.
A typical inspection program examines about 10,000 windows, and some of the windows are very sensitive to position. Some windows are sensitive by intent, e.g., a programmer may wish to use a window to reject a component that is only slightly misplaced. We have recognized, however, that other windows are unintentionally sensitive. For instance, a window may be located close to, or partly on, a bright printed legend or label on the circuit board. Another window may contain a bright spot at the edge of the window in an otherwise dark field. A very slight error in placement of the window from one board to the next, or from one system to the next, may cause a large shift in the value returned by the algorithm that tests such a window.
One source of error in the placement of windows arises from quantization. The lighting, placement of the camera(s) are controlled digitally, and images recorded by the camera(s) are stored in digital form. It is a well known that the last bit of any digitized representation has an error of at least +/−½ the value of the least significant bit for that quantity.
Another source of errors is speed. Servo placement is never exact. One can reduce the errors in servo placement if one is willing to wait a longer time for the servo position loops to close, but speed is of the essence in AOI applications, so a band of uncertainty is generally accepted.
Other variations occur between systems. These variations arise because machines cannot be reproduced exactly, but are instead built and calibrated within manufacturing tolerances.
Many production facilities have multiple lines that manufacture the same product. Such is the case in the personal computer, consumer electronics, and automotive electronics industries, where production volumes are generally too high to be sustained by a single production line. In such multiple-line installations, it is important that the AOI machines all use the same inspection program.
It is often difficult to make an inspection program that is repeatable and consistent when deployed across many AOI machines. Even when two machines are identical within their normal manufacturing tolerances, they may still be different enough to cause a sensitive window to read differently. If the differences are large enough, a circuit board that passes on one machine will fail on another.